// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: 'cloud1-2ga6780q302b7f4a'
}) // 使用当前云环境
const db = cloud.database()

// 云函数入口函数
exports.main = async (event, context) => {
  const { OPENID } = cloud.getWXContext()
  console.log('开始执行adminGetEquipmentDetail云函数')
  console.log('传入参数:', event)
  
  try {
    // 验证管理员身份
    console.log('开始验证管理员身份')
    const result = await cloud.callFunction({
      name: 'checkAdminAuth',
      data: {
        adminId: event.adminId || '',
        token: event.token || ''
      }
    })
    
    const { code, data } = result.result
    console.log('管理员身份验证结果:', code, data)
    
    if (code !== 0 || !data) {
      return {
        code: 401,
        data: null,
        message: '未授权访问'
      }
    }
    
    // 参数验证
    if (!event.equipmentId) {
      return {
        code: -1,
        data: null,
        message: '装备ID不能为空'
      }
    }
    
    // 确保集合存在
    console.log('开始检查equipment集合是否存在')
    try {
      await db.createCollection('equipment').catch(err => {
        // 如果集合已存在，会抛出错误，我们可以忽略这个错误
        console.log('创建集合结果 (可能已存在):', err)
      })
      console.log('集合检查/创建完成')
    } catch (error) {
      console.error('创建集合错误 (忽略):', error)
    }
    
    // 获取装备详情
    console.log('开始获取装备详情, ID:', event.equipmentId)
    let equipment = null
    
    try {
      const res = await db.collection('equipment').doc(event.equipmentId).get()
      equipment = res.data
      console.log('成功获取到装备详情:', equipment)
    } catch (err) {
      console.error('获取装备详情失败:', err)
      return {
        code: -1,
        data: null,
        message: '装备不存在或已被删除'
      }
    }
    
    if (!equipment) {
      return {
        code: -1,
        data: null,
        message: '装备不存在'
      }
    }
    
    console.log('云函数执行成功，返回装备详情')
    return {
      code: 0,
      data: equipment,
      message: '获取装备详情成功'
    }
  } catch (err) {
    console.error('云函数执行出错:', err)
    return {
      code: 500,
      data: null,
      message: '获取装备详情失败: ' + err.message
    }
  }
} 